package com.kaikeba.service;

import com.kaikeba.bean.BordUserInfo;
import com.kaikeba.bean.User;
import com.kaikeba.dao.BaseUserDao;
import com.kaikeba.dao.Impl.UserDaoMySql;

import java.util.List;
import java.util.Map;

public class UserService{
    private static BaseUserDao dao = new UserDaoMySql();

    /**
     * 返回用户人数和日注册量
     * @return [{data_size:总数,data_day:新增}]
     */
    public static List<Map<String,Integer>> console(){
        return dao.console();
    }

    /**
     * 查询所有用户手机号
     *
     * @return
     */
    public static List<String> findUserPhone(){
        return dao.findUserPhone();
    }

    /**
     * 查询所有用户
     *
     * @return 所有用户的集合
     */
    public static List<User> findAll(boolean limit,int offset,int pageNumber) {
        return dao.findAll(true,0,5);
    }

    /**
     * 根据手机号查询用户信息
     *
     * @param userPhone 用户手机号
     * @return 返回单个用户的信息
     */
    public static User findByUserPhone(String userPhone) {
        return dao.findByUserPhone(userPhone);
    }

    /**
     * 增加新用户
     *
     * @param user 用户
     * @return 添加成功返回true, 失败返回false
     */
    public static boolean add(User user) {
        return dao.add(user);
    }

    /**
     * 增加新用户
     *
     * @param user 用户
     * @return 添加成功返回true, 失败返回false
     */
    public static boolean update(User user) {
        return dao.update(user);
    }

    /**
     * 根据手机号删除用户信息
     *
     * @param userPhone 用户手机号
     * @return
     */
    public static boolean delete(String userPhone) {
        return dao.delete(userPhone);
    }

    /**
     * 根据手机号删除用户信息
     *
     * @param id 用户id
     * @return
     */
    public static boolean deleteById(int id) {
        return dao.deleteById(id);
    }

    /**
     * 得到总排名
     *
     * @return
     */
    public static List<BordUserInfo> getRank(){
        return dao.getRank();
    }

    /**
     * 得到年排名
     *
     * @return
     */
    public static List<BordUserInfo> getRankByYear(){
        return dao.getRankByYear();
    }

    /**
     * 得到月排名
     *
     * @return
     */
    public static List<BordUserInfo> getRankByMonth(){
        return dao.getRankByMonth();
    }

}
